home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / ACORNUSERS / EMULATOR / MAME33 / RISCOS.TXT < prev    next >
Text File  |  1998-08-17  |  44KB  |  1,007 lines

  1.  
  2. ARM/RISC OS MAME, version 0.33 FINAL, ported by Gareth S. Long
  3. ==============================================================
  4.  
  5.  
  6. Last updated: (18 Aug 1998)
  7.  
  8. ** PLEASE READ THE CHANGELOG AT THE BOTTOM OF THIS FILE FOR IMPORTANT
  9. UPGRADE INFORMATION, ESPECIALLY IF YOU ARE NOTICING DIFFERENCES BETWEEN
  10. THE CURRENT MAME AND YOUR LAST VERSION **
  11.  
  12. ** PLEASE ALSO READ THE ACCOMPANYING README.TXT AND WHATSNEW.TXT RELATING
  13. TO MAME, ESPECIALLY THE BITS AT THE TOP IN CAPITAL LETTERS, IN MUCH THE
  14. SAME WAY AS YOU ARE READING THIS NOW **
  15.  
  16. AND READ THEM EVERY TIME THIS FILE IS UPDATED.
  17.  
  18. *** PLEASE, PLEASE, PLEASE MAKE SURE YOU ACTUALLY DID THE ABOVE ***
  19.  
  20. ... I'LL BE ABLE TO TELL...
  21.  
  22. One more note: People doing magazine articles and things; please let me know
  23. in advance! Publishers lead times mean you're probably writing a retro retro
  24. into the world of retro gaming by the magazine hits the subscribers even. I
  25. can give accurate information on events to coincide correctly with
  26. publication dates. 
  27.  
  28. What is it?
  29. ===========
  30.  
  31. Welcome to ARM MAME, the Multiple Arcade Machine Emulator. MAME is a large
  32. modular emulation system which allows a relatively huge number of classic
  33. arcade machine PROM images spanning several different games motherboard and
  34. chipset types to be emulated and run successfully. The upshot is that you get
  35. the chance to run original Arcade games *exactly* as they were; you *are*
  36. playing the coin-op version, and no substitute. As a result, and rightly so,
  37. MAME has generated a huge worldwide following, spawning tens of dedicated
  38. web pages with hundreds of links relating to various aspects of MAME, from
  39. ROM image addresses and screenshots, to technical information, to
  40. reminiscences from people who mis-spent almost their entire youth and some
  41. way beyond in a dingy chipshop playing pacman, or who were beaten to within
  42. an inch of their lives by an angry cafe owner for breaking a Robotron 2084
  43. joystick, or something.
  44.  
  45. MAME is the largest emulation project currently in existence, many people
  46. having contributed drivers, information, etc, towards it's development. MAME
  47. is, as a result, constantly in a fluid state, usually undergoing 3-4 revisions
  48. a month, each revision usually adding an average of 25 games to the 'supported'
  49. list. This has changed a little recently, with a drive towards higher initial
  50. game emulation quality. This now means that newer MAMEs are released every 2-3
  51. months, however, the nnumber of new games supported per release now stands at
  52. around 150! Typically, two new game drivers are added to MAME a day. 
  53.  
  54. This port is intended to provide all the functionality of MAME for RISC OS.
  55. Where applicable, each of the features available to, say, MS DOS is available
  56. for the RISC OS port too.
  57.  
  58. It's also a bit good.
  59.  
  60. The documentation for MAME should have arrived within this archive (as well
  61. as a copy of the distribution license) - the MAME documentation is fairly
  62. generic but has some DOS specific stuff towards the end. The RISC OS setup
  63. instructions are given below.
  64.  
  65. What do I need?
  66. ===============
  67.  
  68. Best results are obtained with a StrongARM based Risc PC. Sorry, but versions
  69. of MAME for other machines are only really usable on a 486DX100 or similarly
  70. specced machine, or above for some games. Having said that, ARM 710 users
  71. shouldn't have much of a problem with most games. I am committed to making
  72. MAME more usable on lower-ended machines. Honestly:
  73.  
  74. MAME will work on older machines, but the palette will be completely wrong at
  75. the moment for reasons I will describe below. Expect this to change soon,
  76. however.
  77.  
  78. Picking up the game PROMs
  79. =========================
  80.  
  81. These are fairly widely available via the internet. In order to use the games
  82. legally, you should in theory own the original game machine boards (I do for
  83. many of them, yes really :-) ) and you shouldn't just go picking them up via
  84. sites like http://www.davesclassics.com .. so I'm sure you won't.
  85.  
  86. Organising MAME
  87. ===============
  88.  
  89. This will change a great deal as frontends for MAME are developed and put
  90. into play, and als0o as MAME itself evolves..
  91.  
  92. Create a directory called MAME somewhere on your hard disc. I *strongly*
  93. recommend that this directory be an image filing system archive (zipfile or
  94. TBAFS archive will do nicely, as will a DOSFS partition.. public domain
  95. utilities like X files etc also work well. You can even use StrongHelp to
  96. archive the files inside a new StrongHelp manual). This allows you to use
  97. more than 77 filenames in a directory, and also allows you to use filenames
  98. greater than 10 characters, which some games need)
  99.  
  100. Unpack the contents of the MAME archive into it.
  101.  
  102. Create two blank directories, called 'CFG' and 'HI', alongside the MAME
  103. executable.
  104.  
  105. Unpack any games you have downloaded into directory names which match the
  106. game name (like 'pacman','dkong' etc). These should be subdirectories within
  107. your MAME directory. Your resulting directorystructure should look thus
  108. (names in square brackets are directory names):
  109.  
  110.                         [MAME] (image filing system archive)
  111.                \
  112.                 \    
  113. MAME (executable)  MameVox2  EmUtils  [ROMS]               [CFG] [HI] [... etc]
  114.                                      |
  115.                                 /--------------\
  116.                               [pacman]    [invaders]
  117.                                  |            |                     |
  118.                               pacman/a      invaders.e           ...
  119.                               pacman/b      invaders.h           ...
  120.                               pacman/c      invaders.g           ...
  121.                                 ...           ...                ...
  122.  
  123.  
  124. To run MAME, set your current directory to that of the MAME image filing
  125. system ardchive (double clicking on the provided SetDir obeyfile will do this
  126. for you).
  127.  
  128. Note that as of MAME 0.30.1, front ends/you are able to change the directory
  129. paths. As a result, you can also use a RISC OS search path, enabling ROM sets
  130. to exist in multiple directories, which gets round the problem of otherwise
  131. having a limitation on the number of ROM directories you can have if you
  132. don't use an image filing system like SparkFS.
  133.  
  134. Furthermore, MAME 0.31 and above have direct zipfile support built in,
  135. meaning you can download a zipfile from the net, and it will treat this as a
  136. directory regardless of whether you have SparkFS loaded or not. In this case,
  137. SparkFS will be used if the file is stamped to 'DDC' or a directory image,
  138. if it is typed as 'data', the internal Zip routines will be used.
  139.  
  140. If you want sound, double-click on the SetVox obeyfile.
  141.  
  142. Ensure you have a large wimpslot set - drag the next slot so that it's at
  143. least 6 Megabytes - many games supported now need over 10 MBytess to run. Other games
  144. will need more.
  145.  
  146. Press f12, then type 'mame <gamename>' (eg 'mame dkong', 'mame zaxxon' etc)
  147.  
  148.  
  149. Some generic keys are:
  150.  
  151. 3         Insert coin (pulse to coin mech 1, more specifically)
  152. 1         Start 1 player game
  153. 2         Start 2 players game
  154. Tab       Enter dip switch, key and joy settings, and credits display menu
  155.           Pressing TAB again returns you to the emulator, ESC will exit from MAME.
  156. P         Pause
  157. F3        Reset
  158. F4        Show the game graphics. Use cursor keys to change set/color, F4 to exit
  159. F8        Change frame skip on the fly (60, 30, 20, or 15)
  160. F9        To change volume percentage thru 100,75,50,25,0.
  161.           Keypad PLUS and MINUS change the volume with fine granularity
  162. F10       Toggle speed throttling
  163. F11       Toggle fps counter
  164. F12       Save a screen snapshot
  165. numpad +/-   Volume adjust
  166. left shift + numpad +/- Gamma correction adjust
  167. ESC       Exit emulator
  168.  
  169. Note that running mame with the '-cheat' option allows you to use the fairly
  170. extensive cheat facilities available.
  171.  
  172. Remember that with MAME 0.28 and below, dip switch/key settings are *saved*
  173. in the game directory as a */DSW and *.key (etc) files (MAME 0.25 groups it
  174. all into a /CFG file)... You can remove these to reset to the defaults. Some
  175. upgrades to MAME (particularly those up to 0.25) will necessitate the manual
  176. removal of these files. Note that the generic ReadMe file always warns you to
  177. do this. Warnings in this file will almost always also apply to the RISC OS
  178. version.
  179.  
  180. MAME 0.29 and above store the CFG and HI files in their own directory,
  181. alongside, but separate from the games directories, see the hierarchy chart
  182. for where to put these two blank directories - they will become filled as you
  183. play more games.
  184.  
  185. Have fun.
  186.  
  187. Other options
  188. =============
  189.  
  190. MAME takes a veriety of options other than just the game name. All the
  191. generic MAME options are supported, all the applicable DOS options are
  192. supported, and there are a few RISC OS specific ones. These are as follows.
  193.  
  194. -320          tell MAME to use a vesa 320x240 video mode
  195. -320x256      same as above, video mode is 320x256
  196. -512          same as above, video mode is 512x384
  197. -640          same as above, video mode is 640x480
  198. -800          same as above, video mode is 800x600
  199. -1024         same as above, video mode is 1024x768
  200. -1280         same as above, video mode is 1280x1024
  201. -1600         same as above, video mode is 1600x1200
  202.  
  203. -XxY          where X and Y are width and height (ex: 800x600) (not yet implemented)
  204.  
  205. -vsync        synchronise video display with the video beam instead of using
  206.               the timer. This works best with -noscanlines and the -vesaxxx
  207.               modes. Use F11 to check your actual frame rate - it should be
  208.               around 60. If it is lower, try to increase it with -vgafreq (if
  209.               you are using a tweaked video mode) or use your video board
  210.               utilities to set the VESA refresh rate to 60 Hz.
  211.               Note that when this option is turned on, speed will NOT
  212.               downgrade nicely if your system is not fast enough.
  213. -rotate       No longer supported by any MAME.
  214. -nojoy        don't poll joystick (not really needed with RISC OS)
  215. -log          create a log of illegal memory accesses in ERROR/LOG
  216. -list         display a list of currently supported games
  217. -help, -?     display current mame version and copyright notice
  218. -list         display a list of currently supported games
  219. -listfull     display a list of game directory names + description
  220. -listroms     display selected game required roms
  221. -listsamples  display selected game required samples
  222. -verifyroms   check selected game for missing and invalid ROMs.
  223. -verifysamples check selected game for missing samples.
  224. -romdir       specify an alternate directory where to load the ROMs from (deprecated)
  225. -mouse, -nomouse enable/disable mouse support
  226. -trak         enable trackerball emulation support
  227.  
  228. -frameskip n  skip frames to speed up the emulation. For example, if the game
  229.               normally runs at 60 fps, "-frameskip 1" will make it run at 30
  230.               fps, and "-frameskip 2" at 20 fps. Use F11 to check the fps your
  231.               computer is actually displaying. If the game is too slow,
  232.               increase the frameskip value. Note that this setting can also
  233.               affect audio quality (some games sound better, others sound
  234.               worse).  Maximum value for frameskip is 3.
  235.               
  236.  
  237. -ror          rotate the display clockwise by 90 degrees. 
  238.               This implies '-vesa -800x600' if not specified otherwise
  239.               on the command line. It also provides authentic *vertical*
  240.               scanlines, given you turn your monitor to its side.
  241.               CAUTION:
  242.               A monitor is a complicated, high voltage electronic device.
  243.               There are some monitors which were designed to be rotated.
  244.               If yours is _not_ one of those, but you absolutely must
  245.               turn it to its side, you do so on your own risk.
  246.  
  247.               ******************************************************
  248.               PLEASE DO NOT LET YOUR MONITOR WITHOUT ATTENTION IF IT
  249.               IS PLUGGED IN AND TURNED TO ITS SIDE
  250.               ******************************************************
  251. -ror          rotate the display clockwise by 90 degrees.
  252. -rol          rotate display anticlockwise
  253. -flipx        flip display horizontally
  254. -flipy        flip display vertically
  255.  
  256.               -ror and -rol provide authentic *vertical* scanlines, given you
  257.           turn your monitor to its side.
  258.  
  259. -cheat        Cheats like the speedup in Pac Man or the level skip in many
  260.               other games are disabled by default. Use this switch to turn
  261.               them on.
  262.  
  263. -voices <n>   use <n> channels for RISC OS sound. Values are: 1,2,4 and 8.
  264. -doubley      use scanline doubling (useful if MAME is pickking a mode which
  265.           'letterboxes' with your monitor type - MAME will pick a larger
  266.           mode but stretch the video image in the Y axis.
  267.  
  268. -gappy          This is only useful with -doubley. This gives 'gaps' between the
  269.           doubled-up scanlines to give a more authentic effect.
  270. -hz <freq>    Force only monitor definitions conforming to <freq> freqnecy.
  271.               Find something else if it can't find that freqency for the
  272.               given resolution. Default, or -1 is Wolverhampton
  273.               female on a Friday night.
  274. -fm/-nofm (default: -nofm) on other systems, this means 'use the SoundBlaster
  275.           OPL chip for music emulation in some games. This would be faster,
  276.           with less faithful emulation, but we don't have soundblaster OPL.
  277. -romdir       specify an alternate directory where to load the ROMs from
  278.  
  279. -normalrefresh (default)
  280. -directrefresh
  281. -bankedrefresh
  282.           These allow direct screen access (or bankswitched direct screen access)
  283.           instead of the usual MAME blit technique (-normalrefresh), thus speeding
  284.           the game up a little on slower systems.
  285.           This will not work with some games, however, and banked/directrefresh are
  286.           best used in conjunction with -vsync.
  287. -vg           is no longer supported. It's now the default when using
  288.               vector games.
  289. -antialias/-noantialias (default: -antialias)
  290. -beam n       sets the width in pixels of the vectors. n is a float in the
  291.               range of 1.00 through 16.00.
  292. -flicker n    make the vectors flicker. n is an optional argument, a float in
  293.               the range range 0.00 - 100.00 (0=none 100=maximum).
  294. -cheat        Cheats like the speedup in Pac Man or the level skip in many
  295.               other games are disabled by default. Use this switch to turn
  296.               them on.
  297. -debug        Activate the integrated debugger. During the emulation, press
  298.               tilde to enter the debugger.
  299. -record nnn   Record joystick input on file nnn.
  300. -playback nnn Playback joystick input from file nnn.
  301. -savecfg      save the configuration into mame/cfg
  302. -ignorecfg    ignore mame/cfg and start with the default settings
  303. -record       Record joystick input on file INP.gamename/inp.
  304. -playback     Playback joystick input from file INP.gamename/inp.
  305. -depth n      (default: 16)
  306.               Some games need 65k color modes to get accurate graphics. To
  307.               improve speed, you can turn that off using -depth 8, which limits
  308.               to the standard 256 color modes.
  309.  
  310.  
  311.  
  312. Unless you specify otherwise, MAME will attempt to pick the correct display
  313. resolution for you given your monitor type, and choose the next nearest if
  314. that fails. Most games require 224x288. holding down CONTROL during startup
  315. will allow you to see some of the diagnostic messages giving information on
  316. what mode MAME found suitable.
  317.  
  318. On a Risc PC, you can define your own modes using !MakeModes to make the best
  319. use of your monitor.
  320.  
  321. The best method of setting up perfect modes for MAME are as follows:
  322.  
  323. 1) Get a copy of something like !MakeModes, !CustomVDU or whatever, from any
  324. good Acorn-related FTP site (!MakeModes is available from ftp.acorn.co.uk).
  325.  
  326. 2) Define a mode of either the exact size you need (eg 224x288) or one with
  327. *twice* the Y resolution so that you can use -double (and -scanlines if you
  328. like) - modes defined this way are likely to have a lower refresh rate and
  329. might perform a little better.
  330.  
  331. It doesn't take an experienced modesman to define up a mode that'll work fine
  332. with your monitor type - just fiddle with a resolution reasonably close to
  333. what you're aiming for. Pass your examples of professional modesmanship to me
  334. and I'll include them with the distribution, I shall provide some
  335. ready-made monitor definition files I've defined for common monitortypes
  336. soon.
  337.  
  338.  
  339. To Do
  340. =====
  341.  
  342. 'Acceleration' of vector graphics.. this is something other ports don't have yet
  343. (which surprises me).
  344.  
  345. -desktop operation.
  346.  
  347. The TurboMAME module, which, when loaded, provides alternative 6502 and Z80 emulation
  348. for RISC OS MAME, speeding it up somewhat and making it much more usable on non
  349. StrongARM based machines.
  350.  
  351.  
  352.  
  353. History
  354. =======
  355.  
  356. A list of doings that have been transpiring, from the beginning:
  357.  
  358. [07 Jun 1997] (MAME 0.23)
  359.  
  360. Started. Came in late from a nightclub. Sat down with pizza box. Got the MAME
  361. code to compile and made a start on the operating system dependant stuff.
  362. When I came to next morning, I found there was some kind of video support.
  363.  
  364. [09 Jun 1997]
  365.  
  366. Added keyboard support (buggy). First release made available to a few people.
  367.  
  368. [11 Jun 1997]
  369.  
  370. Started on the sound code. Sorted out some keyboard issues.
  371.  
  372. [15 Jun 1997] (MAME 0.24.0)
  373.  
  374. Notice 0.24 MAME sources are available, so grafted them in. I'll always try
  375. to ensure ARM MAME uses the absolute latest MAME source available. 
  376.  
  377. [22 Jun 1997] (MAME 0.24.1 extreme beta)
  378.  
  379. First version with limited sound support. Limited as in it doesn't actually
  380. work very well at all. Words cannot describe how much the sound system is
  381. annoying me. I have to work with sound tables as small as 16 bytes. It's
  382. nasty.
  383.  
  384. [24 Jun 1997] (MAME 0.24.1 beta 2)
  385.  
  386. Sound is improved a little. Not that much, though. Certainly not enough.
  387. Damn. better screen mode selection code (well.. it's got mode selection
  388. code). This actually works well, though you're bets off defining some modes
  389. as old arcade machine resolutions are a little B'zarre.
  390.  
  391. The problem with setting DIL switch options via TAB, and cycling game
  392. graphics/colours has been fixed.
  393.  
  394.  
  395. [26 Jun 1997]
  396.  
  397. Stuff was done. Lots and lots of it. Also, I got round to doing some things
  398. too. I wondered if the things would get in the way of the stuff, but
  399. thankfully I seemed to manage both. I must have too much time on my hands or
  400. something. Anyway, the collection of things and stuff included:
  401.  
  402. Scanline doubling support! 
  403.  
  404. Gapped scanline doubling support too.
  405.  
  406. Game graphics are now centralised within the mode if the mode is larger than
  407. the games' resolution.
  408.  
  409. Sound should be a lot better :-) (woohoo) Still not right though (D'oh)
  410.  
  411. I wrote some documentation. It'll be the stuff you're reading right now. You
  412. lucky, lucky people.
  413.  
  414.  
  415. [29 Jun 1997] (0.24.1 beta 3)
  416.  
  417. More work on sound, it should at least play on systems now. Let me know if it
  418. doesn't.
  419.  
  420. The invaders/h problem has been worked on. All game PROMs should now be
  421. converted whether they are given names like invaders.h, invaders/h or
  422. h.invaders. Lahvly. In theory.
  423.  
  424. [01 Jul 1997]
  425.  
  426. Made mode selection less fussy (IE it won't give up on a resolution if it
  427. can't find it at the ideal framerate any more)
  428.  
  429. Improvements to sound
  430.  
  431. Williams Electronics Driver colour cycling implemented - this wasn't done
  432. before because the code to drive the DOS version directly isn't really in the
  433. right place in the MAME source (in the operating system dependant part of the
  434. code), and I was hoping it would be fixed in 0.25 but it wasn't.
  435.  
  436. [02 Jul 1997]
  437.  
  438. Merged in 0.25 MAME sources.
  439. Sound is better...
  440. Sorted so all the erroneous osdependant stuff hanging around in the MAME
  441. source code is worked through to my RISC OS stuff..
  442.  
  443. Because the vsync rate is so high in some monitor def files, I added the -hz
  444. option so people can force a specific frame rate for now (dropping to another
  445. mode if it can't get it) this is because constantly waiting on vsyncs which
  446. are happening all the time (when there's little backtrace time to do anything
  447. else) slows games down somewhat. The fix is really to try to define lower
  448. frame rate mdf's if you can, or define a double-height mode and use the
  449. -doubley option.
  450.  
  451. [05 Jul 1997]
  452.  
  453. Linked with updated C library. This at least changed the problem people were
  454. having with inability to load game files.
  455.  
  456. [08 Jul 1997]
  457.  
  458. Turns out the above game directory search failiure is down to a bug in either
  459. the OS, FS or library code. It's hard to find as only 3 people to my
  460. knowledge have the problem and I can't for the life of me repeat it. Anyway,
  461. let me know what this one does, as I should have worked around it.
  462.  
  463. Sound is now much improved.. no, really (!)... sound streaming also supported
  464. so a *lot* more games now have sound, especially if you've picked up the .sam
  465. files to go with the ROM images. 
  466.  
  467. -doubley won't give up so easily finding a double Y res mode, so exceptions
  468. shouldn't happen here anymore.
  469.  
  470. Overall volume setting implemented.
  471.  
  472. Mouse control implementation has begun.
  473.  
  474. [11 Jul 1997]    (0.25.3)
  475.  
  476. Linked with a completely different library. Executable should now be a few
  477. hundred K shorter and a bit faster, and I believe all the name problems have
  478. finally gone.. whopee.
  479.  
  480. To get your images in order, just ensure names like pacman.6e are copied
  481. as pacman/6e - that's it. Easy, huh? All archive filings systems will do that
  482. for you as it's standard. 
  483.  
  484. [16 Jul 1997]
  485.  
  486. Got 0.26 sources. Ported. Found 0.26 sources had problems...
  487.  
  488. [17 Jul 1997] (0.26.0)
  489.  
  490. Okay.. 0.26 is basically fairly shagged. The problem appears to be memory
  491. corruption within the MAME code itself (d'oh) - it's apparently with the PC
  492. version as well, so it appears I am not to blame (woohoo/d'oh).
  493.  
  494. All I can say is you'll find some things work better than before, the new
  495. games supported seem to work okay, but some won't play at all at the moment.
  496. For this reason I've included the mame025 too - sorry! I'll fix it as soon
  497. as I know what is happening, but I suspect there will be a quick rerelease of
  498. MAME. Bear in mind that as I type this, only RISC OS and PC versions of MAME 0.26
  499. exist.
  500.  
  501. -nosound has been added.
  502.  
  503. A bug was fixed in the sound support (some samples will no longer erroneously
  504. repeat like they were doing in MAME 0.25).
  505.  
  506. [18 Jul 1997] (0.26.1)
  507.  
  508. A bugfix release of MAME 0.26 (0.26a) was released and I ported this version across..
  509. This version works, supports one or two more games than 0.26 did, and fixes colours
  510. with some games.
  511.  
  512. Pacman pitch is different - note that this is due to a change in the generic MAME
  513. sources though there have been some slight sound changes by me recently. 
  514.  
  515. [20 Jul 1997]
  516.  
  517. Tested and released. In theory any remaining keyboard problems have been
  518. sorted out.
  519.  
  520. Please note that the generic source for version 0.26.1 of MAME is still not
  521. correct - this has been experienced by PC users (the only other version of
  522. MAME 0.26 right now is the PC version) - games like Pengo and Yie Ar Kung Fu
  523. are experiencing the same problem as with 0.26.0.
  524.  
  525. Also, for some games, you are recommended to use the -nosound option - the
  526. generic code for 0.26 seems to be hanging at the point where it's supposed to
  527. generate wave forms to play - to get out of the hang, alt-break and then
  528. rerun mame and then exit in order to clean up the sound system.
  529.  
  530. I am awaiting a newer bugfixed version of MAME 0.26 to port.. :-)
  531.  
  532. [07 Aug 1997]
  533.  
  534. Work on newer sound system - designed to take what I've got so far and
  535. generate a more unified SoundBlaster-style API for RISC OS. Once I've grafted
  536. this in, all remaining sound problems should be cleared up.
  537.  
  538. [11 Aug 1997] (0.27.0)
  539.  
  540. MAME 0.27 arrives at last :-)
  541.  
  542. Ported across. There is a lot more I want to do as I have finished my other
  543. changes. Essentially I am releasing this to get any major bug problems so I
  544. can try to fix them at the same time as grafting the new sound system in.
  545.  
  546. If you are having problems with hanging with some games, *RMKill MameVoices
  547. before running the emulator.
  548.  
  549. -vg not implemented yet.
  550.  
  551. [12 Aug 1997]
  552.  
  553. -vg implemented. Vector games seem to run very nicely in 800x600 or even
  554. 1280x1024 modes.
  555.  
  556.  
  557. [15 Aug 1997]
  558.  
  559. New Sound module! It works extremely well so sound in everything is
  560. significantly improved.
  561.  
  562. The sound module is actually a very cut down version of the new sound API I'm
  563. developing, as RISC OS sound support has started to become the bottleneck for
  564. RISC OS MAME at the moment. My sound system will allow for 32 channels with
  565. mixing, Each channel can have it's own frequency, waveform, volume, and
  566. looping points. It has support for 8 and 16-bit sound systems, and optimises
  567. itself towards the system in use.
  568.  
  569. The system is a sharable resource and I shall be using it myself for future
  570. projects. I shall release the API to other developers when it's further
  571. developed. 
  572.  
  573. Put back the Williams video driver hardware palette change optimisation which
  574. was missing from MAME 0.27.0 (I hadn't noticed they'd correctly
  575. conditionalised hardware palette availability at compile time at long last,
  576. rather than #defining MSDOS_ONLY in the Williams video hardware emulation
  577. file for hardware palettes - which is why very early versions of MAME had
  578. broken palettes for Williams stuff. Williams driver is now, as a result, back
  579. to pre-2.7.0 speeds again.
  580.  
  581. [20 Aug 1997]
  582.  
  583. Added additional optimisation to Williams driver (IE RISC OS is nearer the
  584. Win32 DirectX5  model, so now only one screen blit is needed, not 2 (like
  585. DOS) or 3 (like Unix). Williams drivers are now extremely fast.
  586.  
  587. [21 Aug 1997]
  588.  
  589. Minor tweaks to streamed sound.
  590.  
  591. Mouse support is now working. This behaves in the same way as the DOS/Win32
  592. version.
  593.  
  594. Overall volume control works fully.
  595.  
  596. [22 Aug 1997] (MAME 0.27.1)
  597.  
  598. Trackerball emulation support added (-trak) - makes Missile Command
  599. infinately more playable :-)
  600.  
  601. [25 Aug 1997]
  602.  
  603. Started work on two new refresh algorithms, -directrefresh and
  604. -bankedrefresh, allowing direct screen access (or bankswitched direct screen
  605. access) instead of the usual MAME blit technique, thus speeding the game up a
  606. little on slower systems. This will not work with some games, however.
  607.  
  608. [09 Sep 1997]
  609.  
  610. MAME 0.28 source acquired and ported across. This includes the new MAME 68000
  611. simulation core.. unfortunately, under ARM, this is
  612. sloooo-oooo-oooo-oooo-oooow, to say the very least. The biggest problem is
  613. that the 68000 is bigendian, and works with halfwords (as we know them in the
  614. ARM world - ie they are 16 bits).. later ARM architectures allow halfword
  615. stores (woohoo!) but IOMD(+)/7500FE does not (d'oh!). We're lucky to have an
  616. inexpensive barrel-shifter, as the emulator uses it as if it's going out of
  617. fashion. Most of the time it's taking a trip into
  618. shiftleftbytwentyfourbitsville.
  619.  
  620. I found the problem with sounds with some games under RISC OS (and other
  621. versions but it only really appeared with the RISC OS version). Basically the
  622. PSG AY-3-8910 sound generator was partying on down with the memory map with
  623. the fervour of a Cwmbran Nurse. I'll reflect my changes back to the other
  624. MAME-type people, but I suspect I still have some work to do here. In fact, I
  625. definitely do, as this chip emulation is also the reason behind some games
  626. appearing to 'lock' if sound is enabled.
  627.  
  628. [10 Sep 1997] (MAME 0.28.0)
  629.  
  630. Tidied and released.
  631. The executable size is up by around 600K as a result of the changes made to
  632. 0.28. The inclusion of the 68000 emulator should result in an explosion
  633. of extra games supported very soon.
  634.  
  635. [15 Sep 1997]
  636.  
  637. Found a problem with speed throttling under RISC OS - IE it doesn't work.
  638. Basically, ARM MAME has been running too fast and without throttling until
  639. now. The problem is due to RISC OS by default not providing a timer with a
  640. greater resolution than 100 ticks a second. Correct speed throttling requires
  641. a millisecond timer which I have to implement myself when I have the time
  642. (and I'm very very busy with other projects at the moment I'm afraid...)
  643.  
  644. Speed throttling is now implemented which means games run at the correct
  645. speed. To return to the speeds you're probably used to by now, turn speed
  646. throttling OFF.
  647.  
  648. Actually, speed throttling won't be quite perfect until I implement a
  649. millsecond timer, the lack of accuracy in the centisecond timer means that
  650. you'll end up being just under or just over 100% speed (the little 'gaps' it
  651. fills in by waiting in order to throttle the speed can be much smaller than a
  652. centisecond).
  653.  
  654. [23 Oct 1997] (MAME 0.29.0)
  655.  
  656. Sorry if this one appeared relatively late (48 hour wait.. sorry ;-) ).. I'm
  657. currently up to my eyes in another project at the moment and ported this for
  658. stress relief..
  659.  
  660. Actually this one was quite complex to port due to the large numbers of
  661. changes going on at source level - there are however a lot of generic
  662. enhancements in this release.
  663.  
  664. Slot size is up again I'm afraid - there's another processor (6808) being
  665. emulated too, bringing the total amount of currently emulated processors to
  666. six.
  667.  
  668. Executable size is around 1600K.
  669.  
  670. [31 Oct 1997]
  671.  
  672. Released...
  673.  
  674. [03 Nov 1997] (MAME 0.29.1)
  675.  
  676. Problems fixed within MAME which now result in significant improvement of
  677. graphical quality in some games (specifically we were falling foul of the
  678. word-alignment problem with ARM loads and stores, or halfw*rds but I don't
  679. even want to begin to talk about them).
  680.  
  681. Games such as StarForce, Rastan, tp84, Kangaroo etc now look far far better, and
  682. don't suffer the effect of.. well, nonaligned data loads being blitted to memory
  683. and doing all sorts of strange shimmering effects when you move, like some kind
  684. of shimmering strange effects-sort-of-thing.
  685.  
  686. I've also finally got in touch with Mirko Buffoni (the MAME co-ordinator and
  687. also a very very very nice and enthusiastic bloke) to get some of the ARM
  688. version changes necessary merged into the generic MAME sources... this should
  689. save time for me in the future.
  690.  
  691. A similar word-alignment problem has been fixed with the 68000 driver.. so
  692. Rastan works agaiu and at twice the speed it was before.
  693.  
  694. The MAME executable has been Squeezed.. This knocks about 900K off it during
  695. storage...
  696.  
  697. [10 Dec 1997] (MAME 0.29.2)
  698.  
  699. Recompiled with CLib again, UnixLib seems to be causing random file opening
  700. problems with some people, probably down to something underlying in RISC OS.
  701. Damn.
  702.  
  703. Correct whatsnew/txt etc files.
  704.  
  705. MAME is no longer squeezed - I remembered why I didn't do it in the first
  706. place now, it adds to the size of the archive, and, as I recommend storing it
  707. in an archive anyway, it just causes an increase in space taken for most
  708. people.
  709.  
  710. Some other minor bits and pieces tweaked.
  711.  
  712. Placed the whole lot in a more ready-to-run directory structure.
  713.  
  714. [14 Dec 1997] (MAME 0.29.3)
  715.  
  716. Lots of little fixes:
  717.  
  718. Implemented dirty buffering for this release. This speeds some games up (more
  719. in the future) significantly. A nasty bug in ARM GCC had stopped me being
  720. able to do this before (ARM GCC sometimes doesn't store registers on the
  721. stack with some functions, and you can end up with BL ... followed by MOV
  722. pc,r14).
  723.  
  724. Dirty buffering will probably improve further in the next release.
  725.  
  726. Found the problem with sound hanging with some games (eg Star Wars, Missile
  727. Command, Centipede, Asteroids Deluxe); it was the POKEY emulation doing
  728. non-word-aligned 32-bit loads and stores.
  729.  
  730. Mouse positioning problems fixed.
  731.  
  732. [08 Jan 1998]
  733.  
  734. MAME 0.30 source finally arrives.
  735.  
  736. Fixed very minor bug in pokey sound generation introduced when I cleaned it
  737. up for ARM word alignment in December.    This improves sound in a few cases.
  738.  
  739. -320 was setting the wrong display mode. Oops.
  740.  
  741. [09 Jan 1998] (MAME 0.30.0)
  742.  
  743. Tidied in preperation for release. Config loading and saving to a file will
  744. be disabled in this release until I get some more feedback from frontend
  745. authors so we can use a file format which makes everyone happy. It'll
  746. probably end up as a textual keyword file.
  747.  
  748. The distribution archive now contains some cheat codes for the cheat system.
  749.  
  750. Anti-Aliasing now working with the vector games. Anti-Aliasing is
  751. automatically turned on with high resolutions; you can use -noaa to turn it
  752. off.
  753.  
  754. There has been a fantastic deal to do this time, I've tried a lot of games
  755. and they worked.. I could not test all of them to say the least. Please let
  756. me know of any problems. I know I have a lot to do as far as sound is
  757. concerned, this will be my next task.
  758.  
  759. Executable size is around 2360K now.
  760.  
  761. [10 Jan 1998]
  762.  
  763. CFG/HI loading/saving mechanism fixed.
  764. Loading and saving of cheats sorted.
  765. Placed some modelists in the modelists directory...
  766. Pitch flattening problems in Galaxians etc have been fixed, also, sound
  767. streaming is improved, which should work towards the 'choppiness' you
  768. sometimes get with sounds. This is still largely dependant on your machine
  769. speed, frame skip rate configured, etc. Please note that as a result, the
  770. MameVox2 module has been upgraded - it'll all sound screwy if you use the
  771. old one.
  772. Sound streaming is not perfect yet.
  773.  
  774. [11 Jan 1998]
  775.  
  776. Damn. My ARM MAME page has been moved onto the restrictred resource page by
  777. Demon due to the large number of hits I'm getting for each ARM MAME release.
  778. Avtually, even the speculative hits (people checking for a newer version) are
  779. causing my bandwidth limit to be exceeded.. thus, I'll need to find a new
  780. server soon...
  781.  
  782. -fm and -nofm work properly now. As this command is based on the same switch
  783. for other systems, it works oppositely to what you might expect - ie -fm
  784. actually means 'use hardware FM' - we don't have hardware FM synthesis. -nofm
  785. means use software frequency modulation synthesis, so for us, -fm means don't
  786. use have any FM synthesis at all (which is much faster), and -nofm gives us
  787. FM music etc support, but at a cost in terms of speed.
  788.  
  789. [12 Jan 1998]
  790.  
  791. The mame/cfg and -usecfg/-savecfg options are implemented. For front end
  792. authors, MAME creates defaults and loads and save the information to mame/cfg
  793. in the same directory as the Absolute file. The file is a standard INI
  794. format, allowing chunks and comments and so on. This behaves in more or less
  795. the same way as the DOS version of MAME.
  796.  
  797. Note that the default is now to store ROMS in <current directory>.ROMS,
  798. however it will try the place we're used to first, as well as trying /zip
  799. subdirectories due to image filing systems.
  800.  
  801. [13 Jan 1998]
  802.  
  803. Vector Anti-Aliasing setting options now saves more sensibly than the DOS
  804. version, especially if auto is set (which is the default).
  805.  
  806. Auto Anti-Aliasing mode works correctly - IE it turns on Anti-Aliasing
  807. automatically for sizes greater than or equal to 640x480 resolution.
  808.  
  809. Please note that, as MAME progresses, emulation of some games may appear
  810. slower; this is usually the result of something additional being emulated
  811. within that game - often sound is improved in that a whole sound processor is
  812. being emulated, or extra scroll layers are added to game which it lacked
  813. before, or the default resolution gets higher, or it was simply running too
  814. quickly before because the timings were got wrong. Please remember that in
  815. almost all cases, you are able to disable some of the extra hardware
  816. emulations added during MAME revisions, so you can revert back to old
  817. behaviour - or if you want to dabble in getting the best out of both worlds,
  818. you have options like frameskip, or screen size selectors to play with.
  819.  
  820. [02 Feb 1998]
  821.  
  822. General tidying, and sorting out the cheat mode hassles.
  823.  
  824. [17 Feb 1998] MAME 0.30.2
  825.  
  826. This was a quick test release to prove the new streamed sound code, which should
  827. (and was) a great deal better for people.
  828.  
  829.  
  830. MAME 0.31
  831.  
  832. Following this point work began on the 0.31 beta series 1-17, and release
  833. candidate 1. Various updates and improvements have been effected (for
  834. example, the LED toggling for reflecting player select lamps), too many to
  835. list, and generally not dated. Huge changes have been made to the operating
  836. system dependancies in order to support MAME 0.31's various extra features -
  837. 0.31 has the greatest list of internal changes so far, covering the addition
  838. of 16 bit colour depth support, etc. The documentation has been reworked to
  839. include all of this as well, so it may be useful rescanning this whole
  840. document even if you have read it fully before.
  841.  
  842.  
  843. [10 Mar 1998]
  844.  
  845. EmulatorUtilities module started. A timer of high enough resolution to
  846. support accurate throttling within MAME, using the hardware timer system, has
  847. been implemented first.
  848.  
  849. RMLoad EmUtils before running MAME to take advantage of the new timer code.
  850.  
  851. [24 Apr 1998] Release: MAME 0.31.0
  852.  
  853. Final version of the MAME 0.31 source code received from Nicola, and ported.
  854.  
  855. I have very very little time to test this release with the final code.
  856.  
  857. Please note that I am flying to the USA tonight (24 Apr 1998) and will be
  858. away for two weeks. Please continue to send your queries, comments, etc, to
  859. my standard address, I can still read them and reply whilst I am away, though
  860. the emulator mailing list will appear to 'pause' for the duration of my
  861. holiday.
  862.  
  863. The source weighs in at 2899K.
  864.  
  865. [29 May 1998] Release MAME 0.33 beta 3.1
  866.  
  867. Too many changes and things going on over the last few days to do a great
  868. deal to this readme file unfortunately, so for now please check up on latest
  869. changes and commandline/config options and differences in the generic readme
  870. files provided. Problems with configuration should be sorted now, and many
  871. changes have been made to the video system, allowing you to do sexy things
  872. like choose modes smaller than the game, and then pan the screen if you want
  873. to.
  874.  
  875. Please note that the mame/cfg choices are now stored in <choices$write> -
  876. make sure this variable has been set up by your !Boot configuration (which it
  877. should have).
  878.  
  879. Delete any existing mame/cfg files, as advised in the generic readmes.
  880.  
  881. -doubley and -gappy are gone; now there is a generic name for them, use
  882. -double and -scanlines respectively. This helps to unify us with our
  883. architectural brothers and attempt to maintain a level of synchronicity in
  884. this big old world.
  885.  
  886. The defaults set by MAME are nodouble (not auto or on) to maintain
  887. compatibility with what you are used to in the RISC OS world. This does mean
  888. that vector games, by default, run in a rectangle in the centre of the
  889. screen. Use -double to use the whole screen. This is correct, though I'll
  890. reconsider doubling set to auto when I can get some feedback from you
  891. regarding when we use doubling and don't, in an automatic sense.
  892.  
  893. I HAVE REMOVED ZIPFILE SUPPORT FROM THIS VERSION. It's too unstable in beta
  894. 33.3. Actually, it can be activated, if you do see it working for some reason
  895. on your machine, let me know, because you could be the missing link and not
  896. know it. Also, -verifyroms can cause instability in a few cases where the ROM
  897. images are corrupt. Caution is advised, I need to speak to a few people about
  898. their respective dogs in this department.
  899.  
  900. Oh, and look out for MESS :-) http://www.elecslns.demon.co.uk/MESS, and
  901. http://www.davesclassics.com for more details as and when they arrive (very
  902. soon, probably very mucharound the time you read this).
  903.  
  904. Mr. Hankey's Christmas special was so brilliant, it was profound.
  905.  
  906. I've thrown in some extra games which probably aren't in the DOS 0.33.3
  907. release. This includes a whole new CPU core over 0.31 - the T11, used in
  908. paperboy. Please note that the paperboy driver is very preliminary, and I
  909. know some of the colours are inverse :-)
  910.  
  911. Executable size is around 3.5 Megs. Well, look at the games and hardware it
  912. supports :-)
  913.  
  914. Contrary to other versions, I will still provide end-user support for beta
  915. releases. Aren't I nice?
  916.  
  917. There will be a new beta of 0.33 (4) very soon. Almost sooner than soon.
  918.  
  919. Please contact me if you have any problems as per usual.
  920.  
  921. [17 Jun 1998] Release: MAME 0.33 beta 6.1
  922.  
  923. This is the 0.33 beta 6 release, with some extra additions made to fix
  924. problems found with the DOS beta 6 release.
  925.  
  926. Please note the changes to the way ROMs are grouped due to 'clone' games,
  927. this is mentioned in the whatsnew file. Similarly, some ROM sets now require
  928. extra colour PROM files.
  929.  
  930. Various changes to the filing system code, which should work much more the
  931. way people expect it to :-)
  932.  
  933. Zip file loading is now fully supported - you can use image filing systems as
  934. normal to override this. Files found which aren't directory images or normal
  935. directories will be opened as zip files. Zip Deflate or store is supported
  936. (as with the other versions of MAME).
  937.  
  938. Some minor bugs in the video selection code fixed, for example, mode
  939. selection when you have a monitor definition which provides a mode of the
  940. exact size needed.
  941.  
  942. I still haven't had time to properly sync this file with reality (and provide
  943. a core for my MESS documentation too) - you are advised to check what's new
  944. in the generic whatsnew and readme files, all the new DOS operations are
  945. supported.
  946.  
  947. -verifyroms works fine in this release...
  948.  
  949. Cheats should now work properly, I've finally nailed the compiler problems in
  950. this respect.
  951.  
  952.  
  953. The object code currently weighs in at 3900K, with two new CPU cores over the
  954. last release - the Signetics 2650 and Intel 8085.
  955.  
  956. Next changes should involve a rewrite of the sound system to handle more than
  957. 8 voices, and 16 bit sound...
  958.  
  959. [23 Jul 1998] Release: MAME 0.33 beta 7.1
  960.  
  961. This is the 0.33 beta 7 release, with some extra additions made to fix
  962. problems found with the DOS beta 6 release in the day since it was released.
  963.  
  964. 628 games are supported in the RISC OS 4085K executable.
  965.  
  966. ROM name selection is now case independant in the RISC OS version - IE
  967. mame PACMAN, mame Pacman etc, work, not just 'mame pacman'.
  968.  
  969. When games with odd screen widths are selected, RISC OS MAME now attempts a
  970. screenmode with an even number of pixels (IE the game's width + 1) for exact
  971. mode selection, to help people generating exact sized RISC OS mode
  972. definitions.
  973.  
  974. There are probably some other fixes I've forgotten about; I won't document
  975. them here yet because I've forgotten them. I will when I remember them.
  976.  
  977. Please note that there are descrepancies between the command line information
  978. described at the beginning of the document and the current case; I am currently
  979. reworking the documentation for my emulators and this ifile is based on slightly
  980. older information. You should always check the generic MAME documentation anyway,
  981. this will provide you with a list of the new features which have come about in this
  982. release.
  983.  
  984. This will be the last MAME version to use the MameVox2 module, in future with
  985. my emulators, there will be a separate 8 and 16-bit sound system module for
  986. you to use instead. 
  987.  
  988. [17 Aug 1998] Release: MAME 0.33 FINAL
  989.  
  990. Note that DACSpt8 and DACSpt16 are used for this version of MAME. Currently,
  991. 16 bit support is disabled, so only the DACSpt8 module is present.
  992.  
  993. Various minor fixes to the video selection code to handle the vast number of
  994. new options recently.
  995.  
  996. [18 Aug 1998]
  997.  
  998. Various documentation changes.
  999. There are now 10 levels of frameskip available (0-9).
  1000. Frameskip value is shown within the speed indicator.
  1001.  
  1002. The next release is likely to coincide with the optimisation drive throughout
  1003. the core to benefit performance on ARM-based systems. This should hopefully
  1004. significantly improve speed. Recently, floating point activity has increased
  1005. within the project to the detrement of ARM-based systems, I will try to
  1006. reduce the effects of this as far as I can.
  1007.